package org.zhb.querysql.common.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

/**
 * @Title: CommonService.java
 * @Package org.zhb.querysql.common.service
 * @Description: 通用的SERVICE
 * @author zhb
 * @date 2016年4月28日 下午4:38:11
 * @version V1.0
 */
public interface CommonService<T> {
	/**
	 * @Title: findById
	 * @Description: 根据主键ID查询
	 * @param id
	 * @return: T
	 * @author: zhb
	 * @throws 2016年4月28日下午4:37:54
	 */
	T findById(String id);

	/**
	 * @Title: findAll
	 * @Description:查询所有
	 * @param model
	 * @return: List<T>
	 * @author: zhb
	 * @throws 2016年4月28日下午4:38:34
	 */
	List<T> findAll(T model);

	/**
	 * @Title: save
	 * @Description: 添加操作
	 * @param t
	 * @return: void
	 * @author: zhb
	 * @throws 2016年4月28日下午4:38:58
	 */
	void save(T t);

	/**
	 * @Title: update
	 * @Description: 更新操作
	 * @param t
	 * @return: void
	 * @author: zhb
	 * @throws 2016年4月28日下午4:39:12
	 */
	void update(T t);

	/**
	 * @Title: delete
	 * @Description:删除根据Id
	 * @param id
	 * @return: void
	 * @author: zhb
	 * @throws 2016年4月28日下午4:39:25
	 */
	void delete(String id);

	/**
	 * @Title: selectModelByCondition
	 * @Description:分页操作
	 * @param pageRequest
	 * @return
	 * @return: Page<T>
	 * @author: zhb
	 * @throws 2016年4月28日下午4:39:39
	 */
	Page<T> selectModelByCondition(PageRequest pageRequest);

}
